create Ui Message Stream
fun createUiMessageStream(onError: (Throwable) -> UIMessage = { throwable ->
UIMessage(
id = "error",
role = UIMessageRole.Assistant,
parts = listOf(UIMessagePart.Error(throwable.message ?: "stream failed")),
)
}, execute: suspend UIMessageStreamWriter.() -> Unit): Flow<UIMessage>